通知
Scripting App 中的 Notification 模块用于安排、管理和展示本地通知,支持多种触发方式、交互操作按钮和富交互界面(自定义 UI)。
目录
安排通知
使用 Notification.schedule 来安排本地通知。它支持标题、触发器、点击行为、操作按钮、自定义 UI 和其他投递选项:
参数说明
SystemImageIcon
用于定义通知图标的系统图标名称和颜色。
systemImage: 系统图标(SFSymbol)名称color: 图标颜色
通知操作按钮(actions)
通过 actions 参数,你可以为通知添加操作按钮。操作按钮会在通知展开后出现,用户可以点击进行操作。
通知操作按钮类型(NotificationAction)
title: 按钮标题icon: 按钮图标url: 点击后打开的 URLdestructive: 是否为破坏性操作
点击行为(tapAction)
通过 tapAction 参数,你可以完全控制用户点击通知时的行为:
"none":点击后无任何响应{ type: "runScript", scriptName: string }:运行指定脚本{ type: "openURL", url: string }:打开指定 URL,可为 deeplink 或 https 链接
如果不设置 tapAction,默认行为是运行当前脚本,你可以通过 Notification.current 获取通知内容。
通知触发器
TimeIntervalNotificationTrigger
在指定秒数后触发通知:
timeInterval: 延迟秒数repeats: 是否重复触发nextTriggerDate(): 返回下次预期触发的时间
CalendarNotificationTrigger
根据特定日期和时间触发通知:
- 支持设置
year、month、day、hour等 - 适用于每日、每周或特定时间提醒
LocationNotificationTrigger
当进入或离开某个地理区域时触发:
- 支持进入/离开圆形区域的触发
通知操作按钮
通过 actions 参数添加通知操作按钮:
- 使用
Script.createRunURLScheme(...)创建 URL - 按钮在长按或下拉通知时显示
富通知(自定义 UI)
你可以使用 TSX 文件定义通知的展开视图:
- 安排通知时设置
customUI: true - 在脚本中添加
notification.tsx文件 - 使用
Notification.present(<JSX>)渲染 UI
Notification.present(element: JSX.Element): void
在 notification.tsx 中调用,用于渲染富通知界面。
示例 notification.tsx
通知管理
通知信息与请求结构
当脚本是通过点击通知启动时,可以通过 Notification.current 获取上下文信息:
NotificationRequest 字段
完整示例
以下示例展示了通知的完整用法:自定义 UI、交互按钮、点击行为、重复触发等。
第一步:安排通知
第二步:创建 notification.tsx
总结
Scripting 中的 Notification API 提供了强大的本地通知功能:
- 支持时间、日历、位置触发器
- 支持操作按钮及跳转脚本
- 通过
tapAction自定义点击通知的行为 - 使用
notification.tsx创建富交互通知界面 - 提供全面的通知生命周期管理
